原则上,量子计算机可以在现代计算基础设施所依赖的某些关键任务上胜过传统计算机。实验性量子计算尚处于早期阶段,现有设备尚不适合实际计算。不过,学术界和工业界的一些研究人员正在构建量子计算机(例如,参见 [2,12,17])。量子计算也给编程语言社区提出了许多具有挑战性的问题 [18]:应如何设计用于量子计算的编程语言?应如何编译和优化量子程序?应如何测试和验证量子程序?应如何理解量子编程语言的语义?在本文中,我们重点研究使用线性依赖类型函数式语言 Proto-Quipper-D 进行量子电路编程。量子力学的不可克隆特性表明,通常无法复制量子比特的状态。许多现有的量子编程语言,如 Quipper[10,11]、QISKit [22]、Q# [27]、Cirq [5] 或 ProjectQ [26],都没有强制执行此属性。因此,程序员必须确保程序中对量子位的引用不会重复或丢弃。线性类型已用于资源感知编程 [8,28],现在众所周知
主要关键词